package com.css.fxfzdzzh.modules.sandLiquefaction.repository;

import com.alibaba.fastjson.JSONObject;
import com.css.fxfzdzzh.modules.eqLandslide.count.param.TaskModelParam;
import com.css.fxfzdzzh.modules.sandLiquefaction.entity.*;
import com.css.fxfzdzzh.modules.sandLiquefaction.vo.AhpVO;
import com.css.fxfzdzzh.modules.sandLiquefaction.vo.SandCircleVO;
import com.css.fxfzdzzh.modules.sandLiquefaction.vo.SandPolygonEvaluateResultVO;
import com.css.fxfzdzzh.modules.sandLiquefaction.vo.StandardPenetrationVO;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author Dbj
 * @date 2023年03月11日  11:11
 */
public interface SandLiquefactionRepository {
    Map<String, Object> getPage(TaskModelParam param, int curPage, int pageSize);

    DzzhModelSandLiquefaction getModelSandLiquefaction(String taskId,String fina);

    DzzhModelSandLiquefaction getModelSandLiquefaction1(String taskId,String fina,String algorithmType);

    DzzhModelSandLiquefaction getModelSandLiquefaction(String taskId,String dmslId,String fina);

    List<DzzhResultSandLiquefaction> getDataByAccelerationAndWaterDepth(String dmslId);

    DzzhModelSandLiquefaction getByDmslId(String dmslId);

    void saveToCenterResult(DzzhModelSandLiquefaction modelSandLiquefaction);

    void delResult(String dmslId);

    void replaceToFinalResult(String dmslId, Integer state, String userId);

    void saveResultDetailSandLiquefaction(DzzhResultDetailSandLiquefaction resultDetailSandLiquefaction);

    void delFinalResultByTaskId(String taskId,String userId);

    void saveFinalResult(DzzhModelSandLiquefaction modelSandLiquefaction);

    void batchUpdate(List<String> drslIdList, BigDecimal sumIle);

    void saveResultDetailSandLiquefaction(List<DzzhResultDetailSandLiquefaction> drslList);

    //是否相交
    Boolean getSTIntersects(String geomText, String geomText1);

    void importDrillData(List<String> drills,String taskId, String versionCode);

    void delete(String taskId, String versionCode);

    List<SandLiquefactionDrill> getUploadDrillList(String taskId, String versionCode);

    void batchSave(List<AhpResultEntity> ahpResultEntityList);

    void saveRatio(String darId, String taskId, String dmslId, String js);


    AhpRatio getAhpRatioData(String taskId, String dmslId);

    List<DzzhResultDetailSandLiquefaction> details(String dmslId, BigDecimal earthquakeAcceleration, String groundWaterDepth);

    List<StandardPenetrationVO> getStandardPenetration(String dmslId, Double earthquakeAcceleration, Double groundWaterDepth);

    List<AhpVO> getAhp(String dmslId, Double earthquakeAcceleration, Double groundWaterDepth);

    List<AhpResultEntity> getAhpResultList(String dmslId);

    List<AhpResultEntity> getAhpResultListByTaskId(String dmslId,String taskId);

    Integer hasAhpResult(String dmslId);

    List<DzzhResultDetailSandLiquefaction> getResultDetailSandLiquefactionList(String dmslId);

    Map<String, Object> getCenterDataPage(String taskId, int curPage, int pageSize);

    BigDecimal getNearestDistanceByDrill(BigDecimal longitude, BigDecimal latitude, BigDecimal longitude1, BigDecimal latitude1);

    BigDecimal getNearestBoundaryDistance(BigDecimal longitude, BigDecimal latitude,String taskId);

    void saveSandCircle(List<SandCircleVO> sandCircleVOS);

    void updateFinalModel(String dmslId, String taskId, Integer state, String flag);

    void saveAhpMathWeight(AhpMathWeight ahpMathWeight);

    AhpMathWeight getAhpMathWeight(String dmslId, String dtId);

    void batchSavePolygonEvaluateResult(List<SandPolygonEvaluateResultVO> voList);

    List<DzzhResultSandLiquefaction> getDataById(String dmslId);

    List<DzzhResultDetailSandLiquefaction> getResultDataById(String dmslId);

    void deleteByTaskId(String dtId);

    OmprehensiveTerrainIndexAndSite getOmprehensiveTerrainIndexAndSiteByDmslId(String dmslId);

    void save(String uuid, String taskId, String fileName1,String fileName2,String gcFileName,String dmslId);

    void update(String ddtisId, String topographicIndexFileName, String fileName2,String gcFileName);

    DzzhDtis getMapResultFile(String taskId,String dmslId);

    void updateGcVersion(String dmslId, String teraVersion);

    String getFinalMapResultFile(String taskId, String dmslId, String landform, String pga);

    Integer getRiverNum(String dtId);

    void saveDtis(String uuid, String taskId, String zhdxzs, String cdlb1, String cdlb2, String gcFileName, String dmslId);

    void delDtis(String dmslId);

    void deleteAhpResult(String dmslId);

    void deleteAhpRatio(String dmslId);

    void deleteDzzhSandLiquefactionResult(String dmslId);

    OmprehensiveTerrainIndexAndSite getOmprehensiveTerrainIndexAndSite(String taskId, String dmslId);

    List<SandLiquefactionDrill> getAllDrillForDp();
}
